package com.zzxz.practicaltrainingsys.util;
import org.springframework.util.ResourceUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileUtil {
    // 文件上传工具类服务方法 - 修复版本
    public static void uploadFile(byte[] file, String filePath, String fileName) throws IOException {
        // 移除重复的generateUniqueFileName调用，直接使用传入的fileName
        File targetFile = new File(filePath, fileName); // 直接使用传入的文件名
        if (!targetFile.getParentFile().exists()) {
            targetFile.getParentFile().mkdirs(); // 如果父目录不存在，创建父目录
        }
        try (FileOutputStream out = new FileOutputStream(targetFile)) { // 使用 try-with-resources 确保流关闭
            out.write(file);
            out.flush();
        }
    }
    //生成唯一文件名的办法
    public static String generateUniqueFileName(String originalFileName){
        //获取文件扩展名
        String fileExtension = "";
        int dotIndex = originalFileName.lastIndexOf(".");
        if(dotIndex > 0){
            fileExtension = originalFileName.substring(dotIndex);
        }
        //使用时间戳生成唯一文件名
        String timeStamp = String.valueOf(System.currentTimeMillis());
        return timeStamp + fileExtension;
    }
    // 获取文件存储路径
    public static String getUpLoadFilePath() {
        File path = null;
        try {
            path = new File(ResourceUtils.getURL("classpath:").getPath());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        if (!path.exists()) path = new File("");
        File filePath = new File(path.getAbsolutePath(), "static/images/upload/");
        return filePath.getAbsolutePath();
    }
}